Порты в IBM PC используются для доступа к микросхемам. Обратиться к ним можно в любой момент из программы на ассемблере. Например, можно используя порт, обратится к микросхеме прерываний или таймеру. Работа с портами это работа на очень низком уровне и всегда есть опасность, что может что то измениться. Но зато это дает очень большие возможности для программиста. Для работы с портами есть специальные команда IN и OUT
in регистр,ном_порта ввод значения из порта ввода-вывода out ном_порта,регистр вывод значения в порт ввода-вывода
Сами порты описаны в документации. Давайте пока сосредоточимся вот на чем. У нас есть возможность обращаться непосредственно к микросхемам. Это делаться через порты. Для работы с портами нужно иметь описание этих портов.
Вот пример кода который получает звук из динамика используя порты.
MODEL SMALL
STACK 256
CODESEG
Start:
mov ax,@data ; установка в ds адpеса
mov ds,ax ; сегмента данных
in al,61H ; получить текущее значение
or al,02H ; установить второй бит
out 61H, al ; вывести значение в порт
mov cx,9000H ; количество циклов
delay: loop delay ; ждать
and al,0fdH ; очистить второй бит
out 61H, al ; вывести в порт
Exit:
CALL ExitProgramm
INCLUDE function.asm
End Start
После запуска этой программы Вы должны услышать короткий звук из динамика.